Cloud computing is a technology that uses the internet and central remote servers to maintain data and applications. Cloud computing typically allows consumers and businesses to use applications without installation, and to access data at a given computer with internet access. This technology typically allows for more efficient computing by centralizing storage, memory, processing and bandwidth.
The advent of cloud computing has encouraged IT infrastructure to be pushed to servers in data centers managed by external entities. Thus, besides the outsourcing of physical servers, the applications that typically ran within a company's walls have been pushed out to the cloud. However, these applications may need access to network device functionality at the enterprise level. Such access can be affected by firewalls, and by communication delay between the application and a network device.
When an application is hosted in the cloud, an enterprise firewall may separate a network device from a server in the cloud. In such instances, the network device can typically cross the enterprise firewall to access the server. However, the server typically cannot penetrate the firewall to access functionality of the network device.
While it is possible to configure the firewall to have traffic to a specific port be forwarded to a specific device, or to use IPv6 to address a specific device, each of these approaches requires that the firewall be configured to enable the incoming traffic. Further, while a protocol such as UPnP can be used to automatically reconfigure the firewall, not all routers support UPnP, and the firewall must be compromised for this approach to work.
In addition to firewall barriers, the flow of data between a network device and an application can be a time-consuming piece of the application's flow. Reducing the amount of data transferred between the network device and the application may provide for more efficient application flow.
Additionally, problems can be encountered when attempting to bridge network devices communicating over otherwise disconnected networks. For example, an environment can be considered which includes a smart phone that communicates with the Internet through the 3G network, and a projector that communicates with the Internet through a Wi Fi network. Both devices may be able to access the same resources on the Internet, but the devices are not typically able to access each other's resources directly, outside of file transfer via Bluetooth or Infrared.
Thus, for an application in a cloud, there is a desire to provide improved access to functionality of a network device. In addition, there is a desire to provide improved bridging of network devices.